"""
Source: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Index.html
"""

# region [Global Imports]

from typing import Any, Generic, Hashable, TypeVar

from typing_extensions import (
    Final,
    Literal,
    NoReturn,
    ParamSpec,
    Protocol,
    TypeAlias,
    TypeGuard,
    final,
    overload,
)

# endregion [Global Imports]

__all__: Final = ["Index"]

# region [Global Generics]

_Value_t = TypeVar("_Value_t", bound=Hashable)
_Value_co = TypeVar("_Value_co", bound=Hashable, covariant=True)

# endregion [Global Generics]

class Index(Generic[_Value_co]):
    # region [Constructor]
    def __new__(
        cls,
        data: Any = ...,
        dtype: Any = ...,
        copy: bool = ...,
        name: Hashable | None = ...,
        tupleize_cols: bool = ...,
    ) -> Index[Any]: ...
    # endregion [Constructor]

    # region [Magic Methods]

    # region [__len__]
    def __len__(self) -> int: ...
    # endregion [__len__]

    # endregion [Magic Methods]

    # region [Incomplete]
    def __getattr__(self, key: str, /) -> Any: ...  # FIXME
    # endregion [Incomplete]
